package com.example.innovate.service.impl;

import com.example.innovate.domain.GraduateInfoDO;
import com.example.innovate.domain.GraduateInfoDOExample;
import com.example.innovate.mapper.GraduateInfoDOMapper;
import com.example.innovate.service.GraduateStudentService;
import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j;
import net.sf.json.JSONArray;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Slf4j
@Service
public class GraduateStudentServiceImpl implements GraduateStudentService {

    @Autowired
    GraduateInfoDOMapper graduateInfoDOMapper;

    @Override
    public GraduateInfoDO addGraduateStudent(GraduateInfoDO graduateInfoDO) {
        graduateInfoDOMapper.insertSelective(graduateInfoDO);
        return graduateInfoDO;
    }

    @Override
    public void deleteGraduateStudent(int id) {
        graduateInfoDOMapper.deleteByPrimaryKey(id);
    }

    @Override
    public GraduateInfoDO updateGraduateStudent(GraduateInfoDO graduateInfoDO) {
        graduateInfoDOMapper.updateByPrimaryKeySelective(graduateInfoDO);
        return graduateInfoDO;
    }

    @Override
    public GraduateInfoDO findGraduateStudentById(int id) {
        return graduateInfoDOMapper.selectByPrimaryKey(id);
    }

    @Override
    public List<GraduateInfoDO> findByUserId(int userId,int pageNumber,int pageSize) {
        GraduateInfoDOExample graduateInfoDOExample = new GraduateInfoDOExample();
        graduateInfoDOExample.createCriteria()
                .andGraUserIdEqualTo(userId);
        PageHelper.startPage(pageNumber,pageSize);
        List<GraduateInfoDO> list = graduateInfoDOMapper.selectByExample(graduateInfoDOExample);
        return list;
    }

    @Override
    public List<GraduateInfoDO> findAllGraduateStudent(int pageNumber, int pageSize) {
        GraduateInfoDOExample graduateInfoDOExample = new GraduateInfoDOExample();
        PageHelper.startPage(pageNumber,pageSize);
        return graduateInfoDOMapper.selectByExample(graduateInfoDOExample);
    }

    @Override
    public List<GraduateInfoDO> findAllNotPage() {
        GraduateInfoDOExample graduateInfoDOExample = new GraduateInfoDOExample();
        return graduateInfoDOMapper.selectByExample(graduateInfoDOExample);
    }

    @Override
    public List<GraduateInfoDO> findByClassName(String className, int pageNumber, int pageSize) {
        GraduateInfoDOExample graduateInfoDOExample = new GraduateInfoDOExample();
        graduateInfoDOExample.createCriteria()
                .andGraClassNameEqualTo(className);
        PageHelper.startPage(pageNumber,pageSize);
        return graduateInfoDOMapper.selectByExample(graduateInfoDOExample);
    }

    @Override
    public JSONArray valueList() {
        GraduateInfoDOExample graduateInfoDOExample = new GraduateInfoDOExample();
        List<GraduateInfoDO> list = graduateInfoDOMapper.selectByExample(graduateInfoDOExample);
        JSONArray array = new JSONArray();
        int i = 0;
        for(i=0;i<list.size();i++){
            array.add(list.get(i).getGraField());
        }
        return array;
    }
}
